#!/bin/sh
#
# find metrics in the QA archives
#
# command line args are alternate patterns matched in the output
# from pminfo -d ... so metric names and metric descriptors
#

tmp=/var/tmp/$$
sts=0
trap "rm -f $tmp.*; exit \$sts" 0 1 2 3 15

_usage()
{
    echo >&2 "Usage: `basename $0` [options] pat ..."
    echo >&2 "   -a         search archives [default]"
    echo >&2 "   -h         search localhost live metrics"
}

arch=true
while getopts "ah?" c
do
    case $c
    in
	a)
	    arch=true
	    ;;
	h)
	    arch=false
	    ;;
	?)
	    _usage
	    sts=1
	    exit
	    ;;
    esac
done
shift `expr $OPTIND - 1`

if [ $# -eq 0 ]
then
    _usage
    sts=1
    exit
fi

pat=""
for arg
do
    if [ -z "$pat" ]
    then
	pat="($arg)"
    else
	pat="$pat|($arg)"
    fi
done

if $arch
then
    srclist="`find * -name '*.meta*'`"
else
    srclist='ignoreme'
fi

for src in $srclist
do
    if $arch
    then
	pminfo -d -a $src 2>&1
    else
	pminfo -d 2>&1
    fi \
    | sed -e '/^[a-z]/{
s/$/|/
N
s/$/|/
N
s/|./|/g
s/  */ /g
s/| Data Type: /|/
s/ InDom: /|/
s/ Semantics: /|/
s/ Units: /|/
}' \
    | egrep "$pat" >$tmp.out

    if [ -s $tmp.out ]
    then
	if $arch
	then
	    pmdumplog -l $src >$tmp.info
	    vers=`sed -n <$tmp.info -e '/Log Format Version/{
s/.*Version //
s/)//
p
}'`
	    host=`sed -n <$tmp.info -e '/ from host /{
s/.* from host //
p
}'`
	    echo "=== `echo "$src" | sed -e 's/\.meta$//' -e 's/\.meta\.[^.]*$//'` (V.$vers) host: $host ==="
	    grep commencing $tmp.info
	    grep ending $tmp.info
	    sed <$tmp.out -e "s/^/    /"
	else
	    echo "=== `hostname` ==="
	    sed <$tmp.out -e "s/^/    /"
	fi
    fi
done
